How to expand color palette with ggplot and RColorBrewer
https://www.r-bloggers.com/how-to-expand-color-palette-with-ggplot-and-rcolorbrewer/
http://jkunst.com/highcharter/
https://github.com/jbkunst/highcharter
http://www.htmlwidgets.org/index.html
https://cran.r-project.org/web/packages/highcharter/index.html
https://www.datacamp.com/community/tutorials/data-visualization-highcharter-r
library(tidyverse)
library(highcharter)
glimpse(pokemon)
Observations: 718
Variables: 20
$ id <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 1...
$ pokemon <chr> "bulbasaur", "ivysaur", "ven...
$ species_id <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 1...
$ height <int> 7, 10, 20, 6, 11, 17, 5, 10,...
$ weight <int> 69, 130, 1000, 85, 190, 905,...
$ base_experience <int> 64, 142, 236, 62, 142, 240, ...
$ type_1 <chr> "grass", "grass", "grass", "...
$ type_2 <chr> "poison", "poison", "poison"...
$ attack <int> 49, 62, 82, 52, 64, 84, 48, ...
$ defense <int> 49, 63, 83, 43, 58, 78, 65, ...
$ hp <int> 45, 60, 80, 39, 58, 78, 44, ...
$ special_attack <int> 65, 80, 100, 60, 80, 109, 50...
$ special_defense <int> 65, 80, 100, 50, 65, 85, 64,...
$ speed <int> 45, 60, 80, 65, 80, 100, 43,...
$ color_1 <chr> "#78C850", "#78C850", "#78C8...
$ color_2 <chr> "#A040A0", "#A040A0", "#A040...
$ color_f <chr> "#81A763", "#81A763", "#81A7...
$ egg_group_1 <chr> "monster", "monster", "monst...
$ egg_group_2 <chr> "plant", "plant", "plant", "...
$ url_image <chr> "1.png", "2.png", "3.png", "...
hchart works like ggplot2's qplot.
hc_add_series works like ggplot2's geom_S.
hcaes works like ggplot2's aes.
pokemon %>%
count(type_1) %>%
arrange(n) %>%
hchart(type = "bar", hcaes(x = "type_1", y = "n"))
pokemon %>%
count(type_1) %>%
arrange(n) %>%
hchart(type = "column", hcaes(x = "type_1", y = "n"))
pokemon %>%
count(type_1) %>%
arrange(n) %>%
hchart(type = "treemap", hcaes(x = "type_1", value = "n", color = "n"))
highchart() %>%
hc_add_series(pokemon, "scatter", hcaes(x = "height", y = "weight"))
highchart() %>%
hc_chart(type = "area") %>%
hc_title(text = "Historic and Estimated Worldwide Population Distribution by Region") %>%
hc_subtitle(text = "Source: Wikipedia.org") %>%
hc_xAxis(categories = c("1750", "1800", "1850", "1900", "1950", "1999", "2050"),
tickmarkPlacement = "on",
title = list(enabled = FALSE)) %>%
hc_yAxis(title = list(text = "Percent")) %>%
hc_tooltip(pointFormat = "<span style=\"color:{series.color}\">{series.name}</span>:
<b>{point.percentage:.1f}%</b> ({point.y:,.0f} millions)<br/>",
shared = TRUE) %>%
hc_plotOptions(area = list(
stacking = "percent",
lineColor = "#ffffff",
lineWidth = 1,
marker = list(
lineWidth = 1,
lineColor = "#ffffff"
))
) %>%
hc_add_series(name = "Asia", data = c(502, 635, 809, 947, 1402, 3634, 5268)) %>%
hc_add_series(name = "Africa", data = c(106, 107, 111, 133, 221, 767, 1766)) %>%
hc_add_series(name = "Europe", data = c(163, 203, 276, 408, 547, 729, 628)) %>%
hc_add_series(name = "America", data = c(18, 31, 54, 156, 339, 818, 1201)) %>%
hc_add_series(name = "Oceania", data = c(2, 2, 2, 6, 13, 30, 46))
y <- quantmod::getSymbols("AMZN", auto.assign = FALSE)
highchart(type = "stock") %>%
hc_add_series(x) %>%
hc_add_series(y, type = "ohlc")
Highmaps - Map Collection
https://code.highcharts.com/mapdata/
hcmap("https://code.highcharts.com/mapdata/countries/in/in-all.js")%>%
hc_title(text = "India")
trying URL 'https://code.highcharts.com/mapdata/countries/in/in-all.js'
Content type 'application/x-javascript' length 52341 bytes (51 KB)
==================================================
downloaded 51 KB
hcmap("https://code.highcharts.com/mapdata/countries/tr/tr-all.js")%>%
hc_title(text = "Turkey")
trying URL 'https://code.highcharts.com/mapdata/countries/tr/tr-all.js'
Content type 'application/x-javascript' length 80597 bytes (78 KB)
==================================================
downloaded 78 KB
download_map_data: Download the geojson data from the highcharts collection.
get_data_from_map: Get the properties for each region in the map, as the keys from the map data.
glimpse(mapdata)
Observations: 34
Variables: 20
$ `hc-group` <chr> "admin1", "admin1", "admin1", "admin1", "admin1", "admin1", "admin1", "admin1", "admin1", "admin1"...
$ `hc-middle-x` <dbl> 0.65, 0.59, 0.50, 0.56, 0.46, 0.46, 0.51, 0.59, 0.47, 0.56, 0.60, 0.63, 0.51, 0.53, 0.53, 0.51, 0....
$ `hc-middle-y` <dbl> 0.81, 0.63, 0.74, 0.38, 0.64, 0.51, 0.34, 0.41, 0.60, 0.32, 0.47, 0.55, 0.48, 0.38, 0.39, 0.46, 0....
$ `hc-key` <chr> "in-py", "in-ld", "in-wb", "in-or", "in-br", "in-sk", "in-ct", "in-tn", "in-mp", "in-2984", "in-ga...
$ `hc-a2` <chr> "PY", "LD", "WB", "OR", "BR", "SK", "CT", "TN", "MP", "GU", "GA", "NL", "MN", "AR", "MZ", "TR", "D...
$ labelrank <chr> "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "9", "2", "9"...
$ hasc <chr> "IN.PY", "IN.LD", "IN.WB", "IN.OR", "IN.BR", "IN.SK", "IN.CT", "IN.", "IN.MP", "IN.", "IN.GA", "IN...
$ `alt-name` <chr> "Pondicherry|Puduchcheri|Pondichéry", "Íles Laquedives|Laccadive|Minicoy and Amindivi Islands|Lacc...
$ `woe-id` <chr> "20070459", "2345748", "2345761", "2345755", "2345742", "2345762", "20070464", "2345758", "2345749...
$ fips <chr> "IN22", "IN14", "IN28", "IN21", "IN34", "IN29", "IN37", "IN22", "IN35", "IN32", "IN08", "IN20", "I...
$ `postal-code` <chr> "PY", "LD", "WB", "OR", "BR", "SK", "CT", "TN", "MP", NA, "GA", "NL", "MN", "AR", "MZ", "TR", NA, ...
$ name <chr> "Puducherry", "Lakshadweep", "West Bengal", "Orissa", "Bihar", "Sikkim", "Chhattisgarh", "Tamil Na...
$ country <chr> "India", "India", "India", "India", "India", "India", "India", "India", "India", "India", "India",...
$ `type-en` <chr> "Union Territory", "Union Territory", "State", "State", "State", "State", "State", "State", "State...
$ region <chr> "South", "South", "East", "East", "East", "East", "Central", "South", "Central", "West", "West", "...
$ longitude <chr> "79.7758", "72.7811", "87.7289", "84.4341", "85.8134", "88.4482", "82.3069", "78.2704", "78.421400...
$ `woe-name` <chr> "Puducherry", "Lakshadweep", "West Bengal", "Orissa", "Bihar", "Sikkim", "Chhattisgarh", "Tamil Na...
$ latitude <chr> "10.9224", "11.2249", "23.0523", "20.625", "25.6853", "27.5709", "21.8044", "11.0159", "22.9404", ...
$ `woe-label` <chr> "Puducherry, IN, India", "Lakshadweep, IN, India", "West Bengal, IN, India", "Orissa, IN, India", ...
$ type <chr> "Union Territor", "Union Territor", "State", "State", "State", "State", "State", "State", "State",...
hcmap("https://code.highcharts.com/mapdata/countries/in/in-all.js", data = State_pop, value = "Population",
joinBy = c("hc-a2", "State"), name = "Fake data",
dataLabels = list(enabled = TRUE, format = '{point.name}'),
borderColor = "#FAFAFA", borderWidth = 0.1,
tooltip = list(valueDecimals = 0))
trying URL 'https://code.highcharts.com/mapdata/countries/in/in-all.js'
Content type 'application/x-javascript' length 52341 bytes (51 KB)
==================================================
downloaded 51 KB
df <- data_frame(
name = c("Animals", "Fruits", "Cars"),
y = c(5, 2, 4),
drilldown = tolower(name)
)
ds <- list_parse(df)
names(ds) <- NULL
hc <- highchart() %>%
hc_chart(type = "column") %>%
hc_title(text = "Basic drilldown") %>%
hc_xAxis(type = "category") %>%
hc_legend(enabled = FALSE) %>%
hc_plotOptions(
series = list(
boderWidth = 0,
dataLabels = list(enabled = TRUE)
)
) %>%
hc_add_series(
name = "Things",
colorByPoint = TRUE,
data = ds
)
dfan <- data_frame(
name = c("Cats", "Dogs", "Cows", "Sheep", "Pigs"),
value = c(4, 3, 1, 2, 1)
)
dffru <- data_frame(
name = c("Apple", "Organes"),
value = c(4, 2)
)
dfcar <- data_frame(
name = c("Toyota", "Opel", "Volkswage"),
value = c(4, 2, 2)
)
second_el_to_numeric <- function(ls){
map(ls, function(x){
x[[2]] <- as.numeric(x[[2]])
x
})
}
dsan <- second_el_to_numeric(list_parse2(dfan))
dsfru <- second_el_to_numeric(list_parse2(dffru))
dscar <- second_el_to_numeric(list_parse2(dfcar))
hc %>%
hc_drilldown(
allowPointDrilldown = TRUE,
series = list(
list(
id = "animals",
data = dsan
),
list(
id = "fruits",
data = dsfru
),
list(
id = "cars",
data = dscar
)
)
)
NA
tm <- pokemon %>%
mutate(type_2 = ifelse(is.na(type_2), paste("only", type_1), type_2),
type_1 = type_1) %>%
group_by(type_1, type_2) %>%
summarise(n = n()) %>%
ungroup() %>%
treemap::treemap(index = c("type_1", "type_2"),
vSize = "n", vColor = "type_1")
tm$tm <- tm$tm %>%
tbl_df() %>%
left_join(pokemon %>% select(type_1, type_2, color_f) %>% distinct(), by = c("type_1", "type_2")) %>%
left_join(pokemon %>% select(type_1, color_1) %>% distinct(), by = c("type_1")) %>%
mutate(type_1 = paste0("Main ", type_1),
color = ifelse(is.na(color_f), color_1, color_f))
Column `type_1` joining factor and character vector, coercing into character vectorColumn `type_2` joining factor and character vector, coercing into character vector
highchart() %>%
hc_add_series_treemap(tm, allowDrillToNode = TRUE,
layoutAlgorithm = "squarified")
'hc_add_series_treemap' is deprecated.
Use 'hctreemap' instead.
See help("Deprecated")
pokemon%>%
count(type_1)%>%
arrange(n)%>%
hchart(type = "bar", hcaes(x = "type_1", y = "n", color = "type_1"))%>%
hc_exporting(enabled = TRUE)
pokemon%>%
count(type_1)%>%
arrange(n)%>%
hchart(type = "bar", hcaes(x = "type_1", y = "n", color = "type_1"))%>%
hc_exporting(enabled = TRUE)%>%
hc_add_theme(hc_theme_chalk())
data("weather")
x <- c("Min", "Mean", "Max")
y <- sprintf("{point.%s}", c("min_temperaturec", "mean_temperaturec", "max_temperaturec"))
tltip <- tooltip_table(x, y)
hchart(weather, type = "columnrange",
hcaes(x = "date", low = "min_temperaturec", high = "max_temperaturec",
color = "mean_temperaturec")) %>%
hc_chart(polar = TRUE) %>%
hc_yAxis( max = 30, min = -10, labels = list(format = "{value} C"),
showFirstLabel = FALSE) %>%
hc_xAxis(
title = list(text = ""), gridLineWidth = 0.5,
labels = list(format = "{value: %b}")) %>%
hc_tooltip(useHTML = TRUE, pointFormat = tltip,
headerFormat = as.character(tags$small("{point.x:%d %B, %Y}")))
NA
devtools::install_github("hrbrmstr/taucharts")
# githubinstall::githubinstall("taucharts")
library(taucharts)
Error in library(taucharts) : there is no package called ‘taucharts’
mtcars2 <- mtcars %>%
select(wt, mpg) %>%
mutate(model = row.names(mtcars))
taucharts::tauchart(mtcars2) %>%
tau_point(x = "wt", y = "mpg") %>%
tau_tooltip() %>%
tau_trendline()
http://r-statistics.co/ggplot2-Tutorial-With-R.html
ggplot(diamonds, aes(x=carat)) # if only X-axis is known. The Y-axis can be specified in respective geoms.
ggplot(diamonds, aes(x=carat, y=price)) # if both X and Y axes are fixed for all layers.
ggplot(diamonds, aes(x=carat, color=cut)) # Each category of the 'cut' variable will now have a distinct color, once a geom is added.
ggplot(diamonds, aes(x=carat), color="steelblue")
ggplot(diamonds, aes(x=carat, y=price, color=cut)) +
geom_point() +
geom_smooth()
# Adding scatterplot geom (layer1) and smoothing geom (layer2).
ggplot(diamonds) +
geom_point(aes(x=carat, y=price, color=cut)) +
geom_smooth(aes(x=carat, y=price, color=cut))
# Same as above but specifying the aesthetics inside the geoms.
library(ggplot2)
ggplot(diamonds) +
geom_point(aes(x=carat, y=price, color=cut)) +
geom_smooth(aes(x=carat, y=price)) # Remove color from geom_smooth
ggplot(diamonds, aes(x=carat, y=price)) +
geom_point(aes(color=cut)) +
geom_smooth() # same but simpler
continue from here http://r-statistics.co/ggplot2-Tutorial-With-R.html